package data.item;

import org.jdom.Element;
import data.Dataexception;
import data.bonus.Bonuslist;
import data.requirement.Requirementlist;

public class Talent extends Item
{
	/**
	 * Die Liste mit allen Boni fuer das Talent
	 */
	private Bonuslist boni;
	
	/**
	 * Eine Liste mit allen Voraussetzungen des Talents
	 */
	private Requirementlist requirements;
	
	
	/**
	 * CTor. Ruft die processXML-Methode auf und
	 * liest die Informationen
	 * @param elem
	 */
	public Talent(Element elem) throws Dataexception
	{
		// Elem wird in super auf Null geprueft
		super(elem);		
		
		// initing
		this.boni = new Bonuslist();
		this.requirements = new Requirementlist();
		
		// Boni verarbeiten
		Element bonixml = elem.getChild("boni");
		if(bonixml != null)
			this.boni.processXML(bonixml);
		
		// Voraussetzungen laden
		Element requirementsxml = elem.getChild("requirements");
		if(requirementsxml != null)
			this.requirements.processXML(requirementsxml);
	}
	
	/**
	 * Die Methode gibt das Objekt als String wieder.
	 * Die Methode wird zum Debuggen benutzt
	 */
	public String toString()
	{
		StringBuilder sb = new StringBuilder();
		sb.append("Talent ID: " + getID() + " Name: " + getName());
		sb.append("\n");
		sb.append(this.boni);
		sb.append("\n");
		sb.append(this.requirements);
		return sb.toString();
	}

}
